/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import controle_visao.FRMpatrocinador;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modelo.Patrocinador;

/**
 *
 * @author Aluno
 */
public class PatrocinadorDAO {
    
    Connection conn;
    
    public PatrocinadorDAO() {
        try {
            conn = new Conexao().getConexao();
        } catch (SQLException ex) {
            Logger.getLogger(PatrocinadorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
   }
    
    public void inserir(Patrocinador pat){
        String sql = " INSERT INTO patrocinador " + "(nome,cnpj,telefone,id,valor)" + "VALUES (?,?,?,?,?)";
        try
            (PreparedStatement pstmt = this.conn.prepareStatement(sql)){
            pstmt.setString(1,pat.getNome());
            pstmt.setString(2,pat.getCnpj());
            pstmt.setString(3,pat.getTelefone());
            pstmt.setInt(4, pat.getId_patrocinador());
            pstmt.setDouble(5,pat.getValor());
            JOptionPane.showMessageDialog(null,"patrocinador inserido com sucesso");
        }
        catch(SQLException ex){
            JOptionPane.showMessageDialog(null,"vai te fuder");
        }
    }
    
    public void excluir(int id_patrocinador) {
       String sql = "DELETE FROM patrocinador WHERE id" + id_patrocinador;
       try
           (Statement stmt = this.conn.prepareStatement(sql)){
           if(stmt.executeUpdate(sql)!= 0){
               JOptionPane.showMessageDialog(null,"patrocinador excluido com sucesso");
               
           }stmt.close();
           
       }catch(SQLException ex){
           System.out.println("SQLExcption em excluir" + "erro detected" + ex.getMessage());
       }
    }
    
    public void alterar(Patrocinador pat){
      String sql = "UPDATE patrocinador SET" + 
                   "nome?,cnpj?,telefone?,id_patrocinador?,valor?" +
                   "WHERE id_patrocinador=?";
      try 
          (PreparedStatement pstmt = this.conn.prepareStatement(sql))
      {
      pstmt.setString(1,pat.getNome());
      pstmt.setString(2,pat.getCnpj() );
      pstmt.setString(3,pat.getTelefone());
      pstmt.setInt(4,pat.getId_patrocinador());
      pstmt.setDouble(5,pat.getValor());
      if(pstmt.executeUpdate() != 0){
          JOptionPane.showMessageDialog(null,"patrocinador alterado com sucesso");
      }
       pstmt.close();
      }
      catch(SQLException ex){
         System.out.println("SQLException em alterar" + "erro em alterar" + ex.getMessage());
      }
      
    }
    
    public ArrayList<Patrocinador> consultar(String nome) {
        String sql = "SELECT FROM patrocinador WHERE nome"+ "LIKE"+ nome +" 1 ORDER BY nome";
        ArrayList<Patrocinador> patrocinador = new ArrayList<>();
        Patrocinador pat;
        try     
            (Statement stmt = this.conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql);)
        {
            while(rs.next()){
           pat = new Patrocinador();
           pat.setId_patrocinador(rs.getInt("id"));
           pat.setNome(rs.getString("nome"));
           pat.setCnpj(rs.getString("cnpj"));
           pat.setTelefone(rs.getString("telefone"));
           pat.setValor(rs.getDouble("valor"));
           patrocinador.add(pat);
            }
            stmt.close();
            rs.close();
            return patrocinador;
        } catch(SQLException ex){
          System.out.println("SQLException em consultar" + "erro detectado" + "vai se fuder" + ex.getMessage());
          return null;
                  
        }
    }
    
    public ArrayList<Patrocinador> listar()  {
        String sql = "SELECT * FROM patrocinador";
        ArrayList<Patrocinador> patrocinador = new ArrayList<>();
        Patrocinador pat;
        try (Statement stmt = this.conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql);) {
            while (rs.next()) {
                pat = new Patrocinador();
                pat.setId_patrocinador(rs.getInt("id_patrocinador"));
                pat.setNome(rs.getString("nome"));
                pat.setCnpj(rs.getString("cnpj"));
                pat.setTelefone(rs.getString("telefone"));
                pat.setValor(rs.getDouble("valor"));
                patrocinador.add(pat);
            }
            stmt.close();
            rs.close();
            return patrocinador;
        } catch (SQLException ex) {
            System.out.println("SQLException em listar" + "erro detectado" + "vai se fuder" + ex.getMessage());
            return null;
        }
        }
    }
